var f = {
	init: function() {
		// 点击打开左侧菜单栏
		$(".header_above-slideicon").click(function(e) {
			var m, s, ss, h;
			m = $(".header_mask"), 
			s = $(".header_searchout"), 
			ss = $(".header_slideout"),
			h = $("html");

			if (m.hasClass("search_in")) {					
				s.removeClass("active")
				m.removeClass("search_in")
			}
			m.addClass("active")
			ss.addClass("active").removeAttr("style")
          	h.addClass("disable-scroll")
		})

		$(".header_mask").click(function() {
			if($(".header_mask").hasClass("search_in")) {
				$(".header_searchout").removeClass("active")
			} else {
				$(".header_slideout").removeClass("active")
			}

			$(".header_mask").removeClass("active").removeClass("search_in")
			$("html").removeClass("disable-scroll")
		})

		// 点击打开搜索栏
		$(".header_above-searchicon").click(function() {
			$(".header_searchout").addClass("active")
			$(".header_mask").addClass("active").addClass("search_in")
			$("html").addClass("disable-scroll")
		})

		$(".joe_action_item.mode").click(function() {
			$light = $(".mode-light")
			$drak = $(".mode-dark")

			if ($light.hasClass("active")) {
				$light.removeClass("active")
				$drak.addClass("active")
				$("html").removeAttr("data-mode").attr("data-mode", "dark")
				localStorage.setItem("dataMode", "dark")
			} else {
				$drak.removeClass("active")
				$light.addClass("active")
				$("html").removeAttr("data-mode").attr("data-mode", "light")
				localStorage.setItem("dataMode", "light")
			}
		})

		$(window).scroll(function() {
			if ($(this).scrollTop() > 100) {
				$(".joe_action_item.back2top").addClass("active")
			} else {
				$(".joe_action_item.back2top").removeClass("active")
			}
		})

		// 点击回到顶部按钮
		$(".joe_action_item.back2top").click(function() {
			$("body,html").animate({
				scrollTop: 0, // 将页面滚动位置设置为0	
			}, 800) // 设置滚动时间为800毫秒
		})


	},

	initMode: function() {
		let mode = localStorage.getItem("dataMode")
		$light = $(".mode-light")
		$drak = $(".mode-dark")
		if (mode == 'dark') {
			$light.removeClass("active")
			$drak.addClass("active")
			$("html").removeAttr("data-mode").attr("data-mode", "dark")
		} else {
			$drak.removeClass("active")
			$light.addClass("active")
			$("html").removeAttr("data-mode").attr("data-mode", "light")
		}
	},

	back2top: function() {
		if ($(window).scrollTop() > 100) {
			$(".joe_action_item.back2top").addClass("active")
		} else {
			$(".joe_action_item.back2top").removeClass("active")
		}
	},
	initTimeCount: function() {
		// 获取当前日期和时间
		const now = new Date()
		// 获取当天的午夜时间
		let midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate())
		// 计算自午夜以来的时间差（以毫秒为单位）
		let elapsed = now.getTime() - midnight.getTime()
		// 将时间差转换为小时
		let hours = elapsed / (1000 * 60 * 60)
		// 计算今天已经过去的百分比（假设一天有24小时）
		let percentage = (hours / 24) * 100
		$("#contain_date").children('.title').children('.text').text(hours.toFixed(0))
		$("#contain_date").children(".progress").children(".progress-bar").children('div').css({'width': percentage.toFixed(0) + '%'})
		$("#contain_date").children(".progress").children(".progress-percentage").text(percentage.toFixed(0) + '%')


		// 计算本周的第一天（周日）
		let firstDay = new Date(now.getFullYear(), now.getMonth(), now.getDate() - now.getDay());
		// 计算自本周第一天以来的时间差（以毫秒为单位）
		elapsed = now.getTime() - firstDay.getTime();
		// 将时间差转换为天数
		days = elapsed / (1000 * 60 * 60 * 24);
		// 计算本周已经过去的百分比（假设一周有7天）
		percentage = (days / 7) * 100;

		$("#contain_week").children('.title').children('.text').text(parseInt(days))
		$("#contain_week").children(".progress").children(".progress-bar").children('div').css({'width': parseInt(percentage) + '%'})
		$("#contain_week").children(".progress").children(".progress-percentage").text(parseInt(percentage) + '%')


		// 计算本月的第一天
		firstDay = new Date(now.getFullYear(), now.getMonth(), 1);
		// 计算自本月第一天以来的时间差（以毫秒为单位）
		elapsed = now.getTime() - firstDay.getTime();
		// 将时间差转换为天数
		days = elapsed / (1000 * 60 * 60 * 24);
		var month = now.getMonth()+1;   //月份从0开始获取，所以需要加1
		var year = now.getYear();
		var d = new Date(year,month,0);    
		var totalDays = d.getDate();         // 获取当前月的总天数days
		// 计算本月已经过去的百分比（假设一个月有30天）
		percentage = (days / totalDays) * 100;

		$("#contain_month").children('.title').children('.text').text(parseInt(days))
		$("#contain_month").children(".progress").children(".progress-bar").children('div').css({'width': parseInt(percentage) + '%'})
		$("#contain_month").children(".progress").children(".progress-percentage").text(parseInt(percentage) + '%')


		// 计算自年初以来的月份数
		let months = now.getMonth() + 1 
		// 计算今年已经过去的百分比（假设一年有12个月）
		percentage = (months / 12) * 100;

		$("#contain_year").children('.title').children('.text').text(parseInt(months) - 1)
		$("#contain_year").children(".progress").children(".progress-bar").children('div').css({'width': parseInt(percentage) + '%'})
		$("#contain_year").children(".progress").children(".progress-percentage").text(parseInt(percentage) + '%')
	},
	runTime: function() {
		var dateString = "2023-06-01";
		var dateParts = dateString.split("-"); // 将日期字符串分割成年、月、日的数组
		var year = parseInt(dateParts[0]);
		var month = parseInt(dateParts[1]) - 1; // 月份从0开始，所以要减去1
		var day = parseInt(dateParts[2]);

		// 获取当前时间
		var startTime = new Date(year, month, day);

		// 更新并显示运行时间
		function updateTimer() {
			var currentTime = new Date();
			var timeDiff = currentTime - startTime;
			
			// 将毫秒转换为天、小时、分钟和秒
			var days = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
			var hours = Math.floor((timeDiff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
			var minutes = Math.floor((timeDiff % (1000 * 60 * 60)) / (1000 * 60));
			var seconds = Math.floor((timeDiff % (1000 * 60)) / 1000);
			
			// 在页面上显示运行时间
			// console.log("已运行 " + days + " 天 " + hours + " 时 " + minutes + " 分 " + seconds + " 秒");
			// $("#footer_runtime").text("已运行 " + days + " 天 " + hours + " 时 " + minutes + " 分 " + seconds + " 秒");
			$(".joe_run__second").text(seconds)
			$(".joe_run__minute").text(minutes)
			$(".joe_run__hour").text(hours)
			$(".joe_run__day").text(days)
		}

		// 每秒更新计时器
		setInterval(updateTimer, 1000);
	}
}

$(function() {
	f.init()
	f.initMode()
	f.back2top()
	f.initTimeCount()
	f.runTime()
})